﻿namespace LuckyAssetManagerContrib.Configuration
{
	using System.Configuration;

	/// <summary>
	/// Configuration settings of asset manager contrib
	/// </summary>
	public sealed class AssetManagerContribSettings : ConfigurationSection
	{
		/// <summary>
		/// Configuration settings of processor, responsible for 
		/// choosing appropriate version of asset file, depending 
		/// on current mode of web application
		/// </summary>
		[ConfigurationProperty("selectPathProcessor")]
		public SelectPathProcessorElement SelectPathProcessor
		{
			get
			{
				return this["selectPathProcessor"] as SelectPathProcessorElement;
			}
		}

		/// <summary>
		/// Configuration settings of processor, producing 
		/// final processing of assets
		/// </summary>
		[ConfigurationProperty("finalProcessor")]
		public FinalProcessorElement FinalProcessor
		{
			get
			{
				return this["finalProcessor"] as FinalProcessorElement;
			}
		}

		/// <summary>
		/// Configuration settings of file cache manager
		/// </summary>
		[ConfigurationProperty("assetFileCacheManager")]
		public AssetFileCacheManagerElement AssetFileCacheManager
		{
			get
			{
				return this["assetFileCacheManager"] as AssetFileCacheManagerElement;
			}
		}

		/// <summary>
		/// Configuration settings of HTTP-handler, responsible 
		/// for text output of processed asset
		/// </summary>
		[ConfigurationProperty("assetsHandler")]
		public AssetsHandlerElement AssetsHandler
		{
			get
			{
				return this["assetsHandler"] as AssetsHandlerElement;
			}
		}
	}
}
